﻿#pragma once

#include "../Util/Defines.hpp"
#include "BridgeIOServer.hpp"
class EventHandlerUnknownConnection : public SocketEventHandler
{
public:
	EventHandlerUnknownConnection(BridgeIOServer* pServer);
	virtual ~EventHandlerUnknownConnection();

	virtual void onDisposed();
	virtual void onDisconnected();
	virtual void onConnected();
	virtual void onMessage(Message& msg);

private:
	void onFromBridgeNodeRegisterReq(Message& msg);
	void onFromBridgeReqSubMainVehicle(Message& msg);
	
	void onFromBridgeVehicleBodyState(Message& msg);
	void onFromBridgeVehicleControlState(Message& msg);
	void onFromBridgeVehicleExtraState(Message& msg);
	void onFromBridgeVehicleEventInfo(Message& msg);
	void onFromBridgeVehicleTrajectoryState(Message& msg);

	
	void onFromBridgeTimeStepForwardConfirmDataMessage(Message& msg);
	void onFromMainVehicleDataMessage(Message& msg);
	void onFromBridgeSensorPhysicalBasedDataConfig(Message& msg);
	void onFromBridgeSensorObjectbasedDataConfig(Message& msg);
	void onFromBridgeSensorOSIDataConfig(Message& msg);
	void onFromSensorAnyDataMessage(Message& msg);
	void onFromBridgeMainVehicleInfo(Message& msg);
	void onFromBridgeMainVehicleStatus(Message& msg);
	void onFromBridgeMessageFromOut2SimOneWriteReq(Message& msg);
	void onFromBridgeMessageSimOneOutReadReq(Message& msg);
	void onFromBridgeMessageSimOneOutReadResult(Message& msg);

	void onFromBridgeMessage(Message& msg);
	void onFromBridgeRoute(Message& msg);

private:
	MessageRouter mMessageRouter;
	BridgeIOServer* mpServer;
};
